import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')

from google.appengine.ext.webapp import template

import random
from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app


class HelloHandler(webapp.RequestHandler):
  def get(self):
    template_values = {}
    path = os.path.join(os.path.dirname(__file__), 'hello.html')
    self.response.out.write(template.render(path, template_values))

class QuizHandler(webapp.RequestHandler):
  def get(self):
    template_values = {'name' : self.request.get('name') }
    path = os.path.join(os.path.dirname(__file__), 'quiz.html')
    self.response.out.write(template.render(path, template_values))

class WrongAnswer(object):
  def __init__(self, question, guess, correct):
    self.question = question
    self.guess = guess
    self.correct = correct

class GradeQuizHandler(webapp.RequestHandler):
  def get(self):
    addition_guess = self.request.get('addition')
    capital_guess = self.request.get('capital').strip().lower()
    template_values = {'wrong_answers': [], 'name' : self.request.get('name')}
    if int(addition_guess) != 7:
      template_values['wrong_answers'].append(WrongAnswer("3 + 4", addition_guess, 7))
    if capital_guess != "sacramento":
      template_values['wrong_answers'].append(WrongAnswer("the capital of California?", capital_guess, "Sacramento"))

    path = os.path.join(os.path.dirname(__file__), 'grade_quiz.html')
    self.response.out.write(template.render(path, template_values))

class GoodByeHandler(webapp.RequestHandler):
  def get(self):
    self.response.out.write("Goodbye app engine world!")

class DiceHandler(webapp.RequestHandler):
  def get(self):
    times = self.request.get('times')
    if times.isdigit():
      counter = 0
      while counter < int(times):
        dice1 = random.randint(1, 6)
        dice2 = random.randint(1, 6)
        self.response.out.write("Rolls: " + str(dice1) + " " + str(dice2) + "<br>")
        counter = counter + 1
    self.response.out.write("Done")

def main():
  application = webapp.WSGIApplication([('/hello.*', HelloHandler),
('/goodbye.*', GoodByeHandler),
('/dice.*', DiceHandler),
('/quiz', QuizHandler),
('/grade_quiz', GradeQuizHandler)],
                                       debug=True)
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
